using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Reflection;
using System.Configuration;


namespace Adge.Web
{
    public abstract class HtmlEditorProvider : BaseUserControl
    {

        private static readonly string path = "Adge.WebControls";

        // Fields
        private static HtmlEditorProvider objProvider = null;

        // Methods
        static HtmlEditorProvider()
        {
            CreateProvider();
        }

        public abstract void AddToolbar();
        private static void CreateProvider()
        {
            string className = path + ".FckHtmlEditorProvider";
            objProvider = (HtmlEditorProvider)Assembly.Load(path).CreateInstance(className);

            Assembly asm = Assembly.Load(path);
            Type[] types = asm.GetTypes();
            object o = Assembly.Load(path).CreateInstance(types[0].FullName);
        }

        public abstract void Initialize();
        public static HtmlEditorProvider Instance()
        {
            CreateProvider();
            return objProvider;
        }

        // Properties
        public abstract ArrayList AdditionalToolbars { get; set; }

        public abstract string ControlID { get; set; }

        public abstract Unit Height { get; set; }

        public abstract Control HtmlEditorControl { get; }

        public abstract string RootImageDirectory { get; set; }

        public abstract string Text { get; set; }

        public abstract Unit Width { get; set; }
    }





}
